/* Copyright (c) [2020] [ylc]. Licensed under Apache-2.0 License. */

#include "my_define.h"

//SDA PD6
//SCL PD7

static void i2c_IoInit(void){
	//io初始化输出高，外部电路无上拉，内部需要上拉
	GPIO_InitTypeDef GPIO_Initure;

	GPIO_Initure.Pin = GPIO_PIN_6| GPIO_PIN_7;
	GPIO_Initure.OutputEn = DISABLE;
	GPIO_Initure.InputEn = ENABLE;
	GPIO_Initure.PullupEn = ENABLE;
	HAL_GPIO_Init(GPIOD, &GPIO_Initure);
}

static void i2c_Delay(void){
	delay_us(5);
}

static void i2c_SdaH(void){
	HAL_GPIO_SetInOut(GPIOD, GPIO_PIN_6, ENABLE, DISABLE);
	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_6, GPIO_PIN_RESET);
}

static void i2c_SdaL(void){
	HAL_GPIO_SetInOut(GPIOD, GPIO_PIN_6, ENABLE, ENABLE);
	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_6, GPIO_PIN_RESET);
}

static void i2c_SclH(void){
	HAL_GPIO_SetInOut(GPIOD,GPIO_PIN_7, ENABLE, DISABLE);
	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_7, GPIO_PIN_RESET);
}

static void i2c_SclL(void){
	HAL_GPIO_SetInOut(GPIOD, GPIO_PIN_7, ENABLE, ENABLE);
	HAL_GPIO_WritePin(GPIOD, GPIO_PIN_7, GPIO_PIN_RESET);
}

static u8 i2c_ReadSda(void){
	return HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_6);
}

static u8 i2c_ReadScl(void){
	return HAL_GPIO_ReadPin(GPIOD, GPIO_PIN_7);
}